/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proy1sistdistribuidos.control.advertisements;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.jxta.document.Advertisement;
import net.jxta.id.ID;
import net.jxta.protocol.PipeAdvertisement;

/**
 *
 * @author Juan Felipe
 */
public abstract class AdvertisementImagen extends Advertisement{
    private final static String tipoAdvertisement = "AdvertisementImagen";

    private String nombreAdvertisement;
    private Date fechaCreacion;
    private Date fechaDescarga;
    public static SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private String idImagen;
    private String etiqueta;
    private List<String[]> listaPersonas = new ArrayList<String[]>();
    private Long[] atributosEspeciales = new Long[2];
    private String colorPromedio;
    private Long tamano;
    private String idContenidoFisico;
    private String sensible;
    private String hashArchivo;
    private PipeAdvertisement pipeAdvertisement = null;
    

    /**
     * @return the tipoAdvertisement
     */
    public static String getTipoAdvertisement() {
        return tipoAdvertisement;
    }

    public static String getAdvertisementType() {
        return tipoAdvertisement;
    }
    
    /**
     * @return the fechaCreacion
     */
    public String getFechaCreacion() {
        
        return formato.format(fechaCreacion);
    }

    /**
     * @param fechaCreacion the fechaCreacion to set
     */
    public void setFechaCreacion(String fechaCreacion) throws ParseException {
        this.fechaCreacion = formato.parse(fechaCreacion);
    }

    /**
     * @return the fechaDescarga
     */
    public String getFechaDescarga() {
        if(fechaDescarga!=null){
            return formato.format(fechaDescarga);
        } else {
            return null;
        }
    }

    /**
     * @param fechaDescarga the fechaDescarga to set
     */
    public void setFechaDescarga(String fechaDescarga) throws ParseException {
        if(fechaDescarga==null){
            fechaDescarga = null;
        } else {
            this.fechaDescarga = formato.parse(fechaDescarga);
        }
    }

    /**
     * @return the idImagen
     */
    public String getIdImagen() {
        return idImagen;
    }

    /**
     * @param idImagen the idImagen to set
     */
    public void setIdImagen(String idImagen) {
        this.idImagen = idImagen;
    }

    /**
     * @return the etiqueta
     */
    public String getEtiqueta() {
        return etiqueta;
    }

    /**
     * @param etiqueta the etiqueta to set
     */
    public void setEtiqueta(String etiqueta) {
        this.etiqueta = etiqueta;
    }

    /**
     * @return the colorPromedio
     */
    public String getColorPromedio() {
        return colorPromedio;
    }

    /**
     * @param colorPromedio the colorPromedio to set
     */
    public void setColorPromedio(String colorPromedio) {
        this.colorPromedio = colorPromedio;
    }

    /**
     * @return the tamano
     */
    public Long getTamano() {
        return tamano;
    }

    /**
     * @param tamano the tamano to set
     */
    public void setTamano(Long tamano) {
        this.tamano = tamano;
    }

    /**
     * @return the idContenidoFisico
     */
    public String getIdContenidoFisico() {
        return idContenidoFisico;
    }

    /**
     * @param idContenidoFisico the idContenidoFisico to set
     */
    public void setIdContenidoFisico(String idContenidoFisico) {
        this.idContenidoFisico = idContenidoFisico;
    }

    /**
     * @return the pipeAdvertisement
     */
    public PipeAdvertisement getPipeAdvertisement() {
        return pipeAdvertisement;
    }

    /**
     * @param pipeAdvertisement the pipeAdvertisement to set
     */
    public void setPipeAdvertisement(PipeAdvertisement pipeAdvertisement) {
        this.pipeAdvertisement = pipeAdvertisement;
    }

    /**
     * @return the nombreAdvertisement
     */
    public String getNombreAdvertisement() {
        return nombreAdvertisement;
    }

    /**
     * @param nombreAdvertisement the nombreAdvertisement to set
     */
    public void setNombreAdvertisement(String nombreAdvertisement) {
        this.nombreAdvertisement = nombreAdvertisement;
    }

    /**
     * @return the listaPersonas
     */
    public List<String[]> getListaPersonas() {
        return listaPersonas;
    }

    /**
     * @param listaPersonas the listaPersonas to set
     */
    public void setListaPersonas(List<String[]> listaPersonas) {
        this.listaPersonas = listaPersonas;
    }

    /**
     * @return the atributosEspeciales
     */
    public Long[] getAtributosEspeciales() {
        return atributosEspeciales;
    }

    /**
     * @param atributosEspeciales the atributosEspeciales to set
     */
    public void setAtributosEspeciales(Long[] atributosEspeciales) {
        this.atributosEspeciales = atributosEspeciales;
    }

     public ID getID() {
        return ID.nullID;
    }

   
    public String getSensible() {
        return sensible;
    }

    public void setSensible(String sensible) {
        this.sensible = sensible;
    }

    public String getHashArchivo() {
        return hashArchivo;
    }

    public void setHashArchivo(String hashArchivo) {
        this.hashArchivo = hashArchivo;
    }
}
